import java.util.*;

/**
 *  蓝桥杯1: https://www.lanqiao.cn/problems/504/learning/
 *  输入一行包含一个单词，单词只由小写英文字母组成。
 *
 * 对于所有的评测用例，输入的单词长度不超过 1000。
 *
 * 输出描述
 * 输出两行，第一行包含一个英文字母，表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等，输出字典序最小的那个。
 *
 * 第二行包含一个整数，表示出现得最多的那个字母在单词中出现的次数。
 */

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码... k v
        String str = scan.next();
        char result = str.charAt(0);
        HashMap<Character,Integer> map = new HashMap<>();
        int max = 0;
        for(int i = 0; i < str.length();++i) {
            char ch = str.charAt(i);
            if(!map.containsKey(ch)) {
                map.put(ch,1);
            } else {
                int val = map.get(ch);
                map.put(ch,val+1);
            }
            if(map.get(ch) > max) {
                max = map.get(ch);
                result = ch;
            }
        }
        for(Map.Entry<Character,Integer> entry : map.entrySet()) {
            int tmp = entry.getValue();
            if(tmp == max) {
                if(entry.getKey() < result) {
                    result = entry.getKey();

                }
            }
        }

        System.out.println(result);
        System.out.println(max);

        scan.close();
    }
}